Signal processing refers to performing an operation on a recorded signal; for example, signal processing might entail applying a device such as a filter to a signal to reduce noise and interference. An operation is broadly defined to include software realizations as well as physical realizations of devices such as filters. Accordingly, software can be used to program a computer system to filter an analog signal that has been converted to a digital signal.
The rapid development of computer technology has been paralleled by similarly rapid developments in digital signal processing (DSP). Inexpensive and fast digital circuits make it possible to construct sophisticated computer programs capable of performing complex DSP functions and tasks. In addition, the use of software increases the flexibility to develop operations for specific applications and to modify existing operations. In addition, software can be faster and less expensive than signal processing using a physical device. Some software and computer systems are fast enough to permit on-line processing of digital signals. Hence, software is often used for DSP instead of special or custom circuit devices.
In the prior art, the user applies a DSP computer program to the data representing the signal to be analyzed. The signal represents a physical quantity that varies with time, space, or some other independent variable or variables. The data representing the signal is first converted to digital data using an analog-to-digital converter. The data are stored, and the computer program then retrieves and operates on the digital data in the manner specified by the user. For example, data representing a person's speech can be recorded, converted to a digital signal, then operated on by a DSP computer program to filter out unwanted noise. As another example, an image can be recorded, converted to a digital image, then operated on by a DSP computer program to enhance certain pixels in the image.
In the prior art, a user can develop a computer program using standard processes and functions that are routinely employed in DSP technology and are known in the art. One reference for such functions is "Signal Processing Algorithms in MATLAB," published by Prentice Hall, 1996. A standard MATLAB function is specified in the format of, for example, "sqrt(x)," and a computer program employing that function would have the capability of computing the square root of the elements of "x." Using a combination of such functions with other programming commands, a user can implement a DSP computer program appropriate for his/her needs.
Alternatively, existing in the prior art are commercially available DSP computer programs that can be purchased by a user. Such commercially available DSP computer programs offer advantages for the user who prefers to utilize DSP simply as a tool and whose field of expertise is different from that required to write a DSP program. With a pre-packaged DSP program, the user does not have to do the programming, and hence it is not necessary for the user to be proficient in either the programming language or how to apply that language. The user instead loads the pre-packaged program onto his/her computer system, and then specifies, for example, the type of filter to be applied and the filter's design parameters. The pre-packaged DSP program builds the selected filter type according to the specified parameters. The user then can apply the filter to the data to be analyzed. Thus, the pre-packaged DSP computer programs provide convenience and simplicity to the user, allowing the user to easily develop a powerful tool for digital signal processing.
However, the prior art is problematic in that each pre-packaged DSP program is limited to running only on a single computer system platform. In particular, the graphical user interface associated with each pre-packaged DSP program can not be used across computer system platforms. For example, a Microsoft platform such as Windows 95 may use Visual Basic for the graphical user interface program sections, while a UNIX platform such as Solaris may use Motif. Thus, in the prior art, a DSP computer program that performs on a Microsoft compatible computer system platform is not capable of performing on a UNIX computer system platform, and vice versa. Hence, in the prior art it is necessary to purchase or license more than one version of a DSP program, e.g., one version for each type of computer system platform that is being used. For a company employing a number of analysts and engineers using a variety of platforms, this can result in a substantial expense. In addition, with more than one version of DSP programs being supported, the company's maintenance costs for such things as upgrades are increased commensurately. Also, different DSP software versions will operate differently and may not communicate with each other, which increases the complexity of interactions between engineers and analysts for such common transactions as file transfer and communication of results over the company's internal communication network.
Similarly, the expense to the vendors of DSP programs is also increased due to the need to support multiple computer system platforms. In the prior art, different versions of the same program increase development and manufacturing costs. Increased costs are also associated with the support of multiple versions; for example, upgrades must be prepared for each version, and separate users' manuals must also be written and published. Support technicians on call to respond to user questions and problems also have to be trained on each version.